package com.itheima.Test;

import java.util.Scanner;

public class NanDian {
    /*
        需求：
            已知一个数组 arr = {19, 28, 37, 28, 50}; 键盘录入一个数据，查找该数据在数组中的所有索引,并将这些索引记录到一个新的数组中，并在控
            制台输出新数组中的数组中的所有元素,例如:
             请输入要查找的元素:
             28
             28在数组中的所有索引是: [1,3]
       思路：
            1.定义一个数组，用静态初始化完成数组元素的初始化
            2.键盘录入要查找的数据，用一个变量接收
            3.定义一个索引变量，初始值为-1
            4.遍历数组，获取到数组中的每一个元素
            5.拿键盘录入的数据和数组中的每一个元素进行比较，如果值相同，就把该值对应的索引赋值给索引变量，并结束循环
            6.输出索引变量
        拔高需求:
            将要查找的元素在数组中出现的所有索引位置都记录下来,
            记录到的索引值使用一个新的数组进行存储,
            最后将这个新的数组遍历一下看看
     */
    public static void main(String[] args) {
        // 1.定义一个数组，用静态初始化完成数组元素的初始化
        int[] arr = {28, 28, 37, 28, 37};
        // 2.键盘录入要查找的数据，用一个变量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要查找的元素:");
        int num = sc.nextInt();             //28

        //3. 因为元素可能存在重复,索引可能有多个, 为了能管理好这些索引,我们可以定义一个数组来维护
        int[] indexArr;

        //4. 要想对indexArr进行初始化,必须明确num在arr中出现了几次
        int count = 0;

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == num){
                count++;
            }
        }
        //5. 对indexArr进行动态初始化
        indexArr = new int[count];          //indexArr = new int[3];        indexArr = {-1,-1,-1}

        //6. 先将indexArr中元素使用-1填充
        for (int i = 0; i < indexArr.length; i++) {
            indexArr[i] = -1;
        }

        //7. 遍历arr, 判断其对应索引位置是否是要查找的元素,如果是,将其索引记录到indexArr中
        int j = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == num){
                indexArr[j] = i;
                j++;
            }
        }

        //8. 遍历indexArr
        System.out.print("[");
        for (int i = 0; i < indexArr.length; i++) {
            if (i == indexArr.length - 1){
                System.out.print(indexArr[i]);
            }else {
                System.out.print(indexArr[i] + ", ");
            }
        }
        System.out.println("]");


    }
}
